//
//  UIImageView+Commons.m
//  Categorys
//
//  Created by taihankeji on 2017/6/1.
//  Copyright © 2017年 taihankeji. All rights reserved.
//

#import "UIImageView+Commons.h"

@implementation UIImageView (Commons)



//方法一 : 通过设置layer的属性
//优点 : 简单
//缺点 : 影响性能

//- (void)roundedImageViewWithImage:(UIImage *)image {
//    
//    self.image = image;
//    
//    self.layer.cornerRadius = self.frame.size.width / 2;
//    
//    //切掉多余的部分
//    self.layer.masksToBounds = YES;
//}



//方法二 : 使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角

//- (void)roundedImageViewWithImage:(UIImage *)image {
//    
//    self.image = image;
//    NSLog(@"self --- %@", self);
//    //开始画图
//    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 1.0);
//    
//    //使用贝塞尔曲线画圆
//    [[UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:self.frame.size.width] addClip];
//    
//    [self drawRect:self.bounds];
//    
//    self.image = UIGraphicsGetImageFromCurrentImageContext();
//    
//    //结束画图
//    UIGraphicsEndImageContext();
//}

//方法三 : 使用CAShapeLayer和UIBezierPath设置圆角
// 三种方法中最节省性能的  对内存消耗最少 而且渲染速度快

- (void)roundedImageViewWithImage:(UIImage *)image {
    
    self.image = image;
    
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:self.bounds.size];
    
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
    
    //设置大小
    maskLayer.frame = self.bounds;

    //设置图形的样子
    maskLayer.path = maskPath.CGPath;
    
    self.layer.mask = maskLayer;
    
}



@end
